#include<t_stdio.h>
#include<t_file.h>
//从指令中获取文件名字
//argv【1】代表源文件名字
//argv【2】代表目标文件名字
//创建一个复制函数,返回复制的字节数
 int cp_file(int s_fd , int d_fd){
   int total;
   int r ,w;//r为读入字节数，w为写入字节数
   char buf[128]; 
   while((r=read(s_fd ,buf,128))>0){//每次读取128个字节
	char * temp = buf;
	while(r>0){//防止出现没有全部读入的错误
	w = write(d_fd , buf , r);
	r=r-w;
	total+=w;
	temp+=w;//继续追加
	    }
	}
   return total;
}

int main(int argc , char * argv[]){
     //以只读的方式打开源文件
     int src_fd = open(argv[1],O_RDONLY);
     //以写的方式打开目标文件，如果不存在则创建
     //如果存在，则将内容清空，并且将权限设置为0644
     int flags =  O_WRONLY | O_CREAT | O_TRUNC;
     int dst_fd = open(argv[2],flags , 0644);
     if(src_fd==-1|dst_fd==-1) E_MSG("open",-1);
      //将源文件内容复制到目标文件（如果源文件内容存在）
       cp_file(src_fd , dst_fd);  
     //关闭文件描述符
	close(src_fd);
	close(dst_fd);

	return 0;
}
